/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.shape;

import tk.eigh.ksvg.component.painting._FillProperties;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import ksvg.core.SVGShape;
import tk.eigh.ksvg.types.SVGCoordinate;
import tk.eigh.ksvg.types.SVGLength;

/**
 *
 * @author nt
 */
@JSFComponent(name = "svg:Rect",
type = "tk.eigh.svg.Rect",
family = "shape.Rect",
clazz = "ksvg.shape.Rect",
tagClass = "ksvg.tags.RectTag",
defaultRendererType = "SVGRectRenderer",
desc = "The ‘rect’ element defines a rectangle which is axis-aligned with the current user coordinate system. Rounded rectangles can be achieved by setting appropriate values for attributes ‘rx’ and ‘ry’.")
public abstract class AbstractRect extends SVGShape implements _FillProperties {

    /**
     * x = "&lt;coordinate&gt;"
     *<br/>
     * The x-axis coordinate of the side of the rectangle which has the smaller
     * x-axis coordinate value in the current user coordinate system. If the
     * attribute is not specified, the effect is as if a value of "0" were
     * specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getX();

    /**
     * y = "&lt;coordinate&gt;"
     *<br/>
     * The y-axis coordinate of the side of the rectangle which has the smaller
     * y-axis coordinate value in the current user coordinate system. If the
     * attribute is not specified, the effect is as if a value of "0" were
     * specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getY();

    /**
     * width = "&lt;length&gt;"
     *<br/>
     * The width of the rectangle. A negative value is an error . A value of
     * zero disables rendering of the element.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getWidth();

    /**
     * height = "&lt;length&gt;"
     *<br/>
     * The height of the rectangle. A negative value is an error. A value of
     * zero disables rendering of the element.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getHeight();

    /**
     * rx = "&lt;length&gt;"
     *<br/>
     * For rounded rectangles, the x-axis radius of the ellipse used to round
     * off the corners of the rectangle. A negative value is an error . See the
     * notes below about what happens if the attribute is not specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getRx();

    /**
     * ry = "&lt;length&gt;"
     *<br/>
     * For rounded rectangles, the y-axis radius of the ellipse used to round
     * off the corners of the rectangle. A negative value is an error . See the
     * notes below about what happens if the attribute is not specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getRy();
}